package com.example.learningnote.basic;
import android.util.Log;

public class LearnVariate {
    // 常量声明（使用 final 关键字）
    public static final int MAX_VALUE = 100; // 常量，值不可修改
    public static void main() {
        // 变量声明
        int age = 30; // 普通变量
        double salary = 55000.50; // 浮点类型变量
        boolean isActive = true; // 布尔类型变量
        char grade = 'A'; // 字符类型变量
        String name = "张三"; // 字符串变量

        // 使用 final 声明常量
        final double PI = 3.14159; // 圆周率常量
        Log.d("LearnVariate", "PI 的值是：" + PI);
        // 变量声明的不同方式
        int x, y; // 声明多个变量
        x = 101;
        y = 202;
        // 输出变量值
        Log.d("LearnVariate", "name: " + name);
        Log.d("LearnVariate", "age: " + age);
        Log.d("LearnVariate", "salary: " + salary);
        Log.d("LearnVariate", "isActive: " + isActive);
        Log.d("LearnVariate", "grade: " + grade);
        Log.d("LearnVariate", "MAX_VALUE: " + MAX_VALUE); // 常量
        Log.d("LearnVariate", "x: " + x + ", y: " + y); // 多个变量的使用
        //  Java 中常见的关键字使用示例 使用 static 关键字来调用静态变量
        Log.d("LearnVariate", "使用 static 调用 MAX_VALUE: " + LearnVariate.MAX_VALUE);

        // 使用 this 关键字来访问当前对象
        Common common = new Common("LearnVariate");
        common.display(x); // 调用对象的方法

        // 使用 super 关键字来访问父类成员
        CommonChild child = new CommonChild("LearnVariate");
        child.showMessage();
        child.printParentMessage(); // 调用父类方法

        // 类型转换示例
        // 自动类型转换
        int intVal = 50;
        double doubleVal = intVal; // int 到 double 的自动转换
        Log.d("LearnVariate", "自动转换后 doubleVal: " + doubleVal);

        // 强制类型转换
        double doubleValue = 99.99;
        int intValue = (int) doubleValue; // 强制转换：double 到 int，精度丢失
        Log.d("LearnVariate", "强制转换后 intValue: " + intValue);

        // 逻辑运算符示例
        boolean isAdult = age >= 18;
        boolean hasPermission = isActive && isAdult; // 使用逻辑与运算符
        boolean isEligibleForDiscount = isActive || !isAdult; // 使用逻辑或和逻辑非运算符
        Log.d("LearnVariate", "是否成年且活跃: " + hasPermission);
        Log.d("LearnVariate", "是否有资格获得折扣: " + isEligibleForDiscount);

        // 遍历循环示例
        // for 循环
        Log.d("LearnVariate", "使用 for 循环遍历数组:");
        int[] numbers = {1, 2, 3, 4, 5};
        for (int i = 0; i < numbers.length; i++) {
            Log.d("LearnVariate", "数组元素[" + i + "]: " + numbers[i]);
        }

        // 增强型 for 循环
        Log.d("LearnVariate", "使用增强型 for 循环遍历数组:");
        for (int num : numbers) {
            Log.d("LearnVariate", "数组元素: " + num);
        }

        // while 循环
        Log.d("LearnVariate", "使用 while 循环:");
        int count = 0;
        while (count < 5) {
            Log.d("LearnVariate", "当前计数: " + count);
            count++;
        }

        // do-while 循环
        Log.d("LearnVariate", "使用 do-while 循环:");
        int countDoWhile = 0;
        do {
            Log.d("LearnVariate", "当前计数: " + countDoWhile);
            countDoWhile++;
        } while (countDoWhile < 3);
    }
}



